use memmove to handle overlapping copies.
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Fri, 18 Mar 2005 18:32:42 +0000 (18:32 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Fri, 18 Mar 2005 18:32:42 +0000 (18:32 +0000)
gpsbabel/csv_util.c

index 091bc9789ea78ac45454d06ef366d206abb0991b..64ae1edd56c917e24ac36fea66124310052fce0e 100644 (file)
@@ -82,14 +82,13 @@ csv_stringclean(const char *string, const char *chararray)
         while (*p1) {
             if (*cp == *p1) {
                 /* we don't want this character! */
-                strncpy(p1, p1 + 1, (p2 - p1));
+               memmove(p1, p1 + 1, (p2 - p1));
                 p1[p2 - p1] = '\0';
             }
             p1++;
         }
         cp++;
     }
-    
     return (tmp);
 }
 
@@ -151,7 +150,8 @@ csv_stringtrim(const char *string, const char *enclosure, int strip_max)
     }
 
     /* copy what's left over back into tmp. */
-    strncpy(tmp, p1, (p2 - p1) + 1);
+    memmove(tmp, p1, (p2 - p1) + 1);
+
     tmp[(p2 - p1) + 1] = '\0';
 
     return (tmp);